home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 4111 / 4111.xpi / content / aardvarkUtils.js < prev    next >
Text File  |  2009-12-28  |  6KB  |  195 lines

  1. aardvark.loadObject ({
  2. //-----------------------------------------------------
  3. setElementStyleDefault : function (elem, bgColor) {
  4.   var s = elem.style;
  5.   s.display = "none";
  6.   s.backgroundColor = bgColor;
  7.   s.borderColor = "black";
  8.   s.borderWidth = "1px 2px 2px 1px";
  9.   s.borderStyle = "solid";
  10.   s.fontFamily = "arial";
  11.   s.textAlign = "left";
  12.   s.color = "#000";
  13.   s.fontSize = "12px";
  14.   s.position = "absolute";
  15.   s.paddingTop = "2px";
  16.   s.paddingBottom = "2px";
  17.   s.paddingLeft = "5px";
  18.   s.paddingRight = "5px";
  19.   },
  20.  
  21. //-----------------------------------------------------
  22. getPos : function (o) {
  23.   var pos = {};
  24.   
  25.   var leftX = 0;
  26.   var leftY = 0;
  27.   if (o.offsetParent) {
  28.     while (o.offsetParent) {
  29.       leftX += o.offsetLeft;
  30.       leftY += o.offsetTop;
  31.       o = o.offsetParent;
  32.       }
  33.     }
  34.   else if (o.x) {
  35.     leftX += o.x;
  36.     leftY += o.y;
  37.     }
  38.   pos.x = leftX;
  39.   pos.y = leftY;
  40.   return pos;
  41.   },
  42.  
  43. setAardvarkElem : function (elem) {
  44.   if (elem.nodeType == 1) { // ELEMENT_NODE
  45.     for (var i=0; i<elem.childNodes.length; i++) {
  46.       elem.isAardvark = true;
  47.       this.setAardvarkElem(elem.childNodes.item(i));
  48.       }
  49.     }
  50.   },
  51.  
  52. //-----------------------------------------------------
  53. setHandler : function(obj, eventName, code) {
  54.   if (aardvark.doc.all)
  55.     obj.attachEvent ("on" + eventName, code);
  56.   else
  57.     obj.addEventListener (eventName, code, false);
  58.   },
  59.  
  60. //-----------------------------------------------------
  61. // move a div (or whatever) to an x y location
  62. moveElem : function (o, x, y) {
  63.   o = o.style;
  64.   
  65.   if (aardvark.doc.all) {
  66.     o.pixelLeft=x;
  67.     o.pixelTop=y;
  68.     }
  69.   else {
  70.     o.left=x + "px";
  71.     o.top=y + "px";     
  72.     }
  73.   },
  74.  
  75. //-------------------------------------------------
  76. getElemFromEvent : function (evt) {
  77.   return ((evt.target) ? evt.target : evt.srcElement);
  78.   },
  79.  
  80. //-------------------------------------------------
  81. getWindowDimensions : function () {
  82.   var out = {};
  83.   
  84.   if (aardvark.window.pageXOffset) {
  85.     out.scrollX = aardvark.window.pageXOffset;
  86.     out.scrollY = aardvark.window.pageYOffset;
  87.     }
  88.   else if (aardvark.doc.documentElement) {
  89.     out.scrollX = aardvark.doc.body.scrollLeft + 
  90.           aardvark.doc.documentElement.scrollLeft; 
  91.     out.scrollY = aardvark.doc.body.scrollTop +
  92.           aardvark.doc.documentElement.scrollTop;
  93.     }
  94.   else if (aardvark.doc.body.scrollLeft >= 0) {
  95.     out.scrollX = aardvark.doc.body.scrollLeft;
  96.     out.scrollY = aardvark.doc.body.scrollTop;
  97.     }
  98.   if (aardvark.doc.compatMode == "BackCompat") {
  99.     out.width = aardvark.doc.body.clientWidth;
  100.     out.height = aardvark.doc.body.clientHeight;
  101.     }
  102.   else {
  103.     out.width = aardvark.doc.documentElement.clientWidth;
  104.     out.height = aardvark.doc.documentElement.clientHeight;
  105.     }
  106.   return out;
  107.   },
  108.  
  109. leafElems : {IMG:true, HR:true, BR:true, INPUT:true},
  110.  
  111. //--------------------------------------------------------
  112. // generate "outerHTML" for an element
  113. // this doesn't work on IE, but its got its own outerHTML property
  114. getOuterHtml : function (node) {
  115.   var str = "";
  116.   
  117.   switch (node.nodeType) {
  118.     case 1: { // ELEMENT_NODE
  119.       var isLeaf = (node.childNodes.length == 0 && aardvark.leafElems[node.nodeName]);
  120.   
  121.       str += "<" + node.nodeName.toLowerCase() + " ";
  122.       for (var i=0; i<node.attributes.length; i++) {
  123.         if (node.attributes.item(i).nodeValue != null &&
  124.           node.attributes.item(i).nodeValue != '') {
  125.           str += node.attributes.item(i).nodeName +
  126.             "='" + 
  127.             node.attributes.item(i).nodeValue +
  128.             "' ";
  129.           }
  130.         }
  131.       if (isLeaf)
  132.         str += " />";
  133.       else {
  134.         str += ">";
  135.         
  136.         for (var i=0; i<node.childNodes.length; i++)
  137.           str += aardvark.getOuterHtml(node.childNodes.item(i));
  138.         
  139.         str += "</" +
  140.           node.nodeName.toLowerCase() + ">"
  141.         }
  142.       }
  143.       break;
  144.         
  145.     case 3: //TEXT_NODE
  146.       str += node.nodeValue;
  147.       break;
  148.     }
  149.   return str;
  150.   },
  151.  
  152.  
  153. // borrowed from somewhere
  154. createCSSRule : function (selector, declaration) {
  155.   // test for IE (can i just use "aardvark.doc.all"?)
  156.   var ua = navigator.userAgent.toLowerCase();
  157.   var isIE = (/msie/.test(ua)) && !(/opera/.test(ua)) && (/win/.test(ua));
  158.   
  159.   // create the style node for all browsers
  160.   var style_node = aardvark.doc.createElement("style");
  161.   style_node.setAttribute("type", "text/css");
  162.   style_node.setAttribute("media", "screen");
  163.   
  164.   // append a rule for good browsers
  165.   if (!isIE)
  166.     style_node.appendChild(aardvark.doc.createTextNode(selector + " {" + declaration + "}"));
  167.   
  168.   // append the style node
  169.   aardvark.doc.getElementsByTagName("head")[0].appendChild(style_node);
  170.   
  171.   // use alternative methods for IE
  172.   if (isIE && aardvark.doc.styleSheets && aardvark.doc.styleSheets.length > 0) {
  173.     var last_style_node = aardvark.doc.styleSheets[aardvark.doc.styleSheets.length - 1];
  174.     if (typeof(last_style_node.addRule) == "object"){
  175.       var a = selector.split (",");
  176.       for (var i=0; i<a.length; i++) {
  177.         last_style_node.addRule(a[i], declaration);
  178.         }
  179.       }
  180.     }
  181.   },
  182.  
  183. trimSpaces : function (s) {
  184.   while (s.charAt(0) == ' ')
  185.     s = s.substring(1);
  186.   while (s.charAt(s.length-1) == ' ')
  187.     s = s.substring(0, s.length-1);
  188.   return s;
  189.   },
  190.  
  191. escapeForJavascript : function (s) {
  192.   return s.replace(new RegExp("\n", "g"), " ").replace(new RegExp("\t", "g"), " ").replace(new RegExp("\"", "g"), "\\\"").replace(new RegExp("\'", "g"), "\\'").replace(new RegExp("<", "g"), "<").replace(new RegExp(">", "g"), ">");
  193.   }
  194. });
  195.